import java.util.Random;
import java.util.Scanner;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 言初
 * Date: 2022-11-27
 * Time: 20:45
 */
public class Test {
    public static void main(String[] args) {

    }

    public static void main41(String[] args) {
        //打印X图形
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < n; j++) {
                if(i==j || i+j==n-1){
                    System.out.print("*");
                }else{
                    System.out.print(" ");
                }
            }
            System.out.println();
        }
        sc.close();
    }
    public static void main39(String[] args) {
        //找到1-100之间有多少个9
        int count=0;
        for (int i = 1; i <= 100 ; i++) {
            if(i%10==9){
                System.out.print(i+" ");
                count++;
            }
            if(i/10==9){
                System.out.print(i+" ");
                count++;
            }
        }
        System.out.println();
        System.out.println(count);
    }

    public void merge(int A[], int m, int B[], int n) {
        //合并2个有序数组
        //把B合并到A中
        int a=0;
        int b=0;
        int[] array=new int[m+n];
        int i=0;
        while(a<m&&b<n)
        {
            if(A[a]>B[b]){
                array[i]=B[b];
                i++;
                b++;
            }else{
                array[i]=A[a];
                i++;
                a++;
            }
        }
        if(a<m){
            for (int j = a; j < m; j++) {
                array[i]=A[a];
                i++;
            }
        }
        if(b<n){
            for (int j = b ;j < n; j++) {
                array[i]=B[b];
                i++;
            }
        }
        for (int j = 0; j < m+n; j++) {
            A[j]=array[j];
        }
    }

    public static void main40(String[] args) {
        Scanner sc=new Scanner(System.in);
        //输入一个字符串，  输出字符集合，重复出现的字符只输出第一次出现的那个
        while(sc.hasNextLine()){
            String str=sc.nextLine();
            char[] array=new char[str.length()];
            int j=0;
            for (int i = 0; i < str.length(); i++) {
                char ch=str.charAt(i);
                int k=0;
                if(j==0){
                    array[j]=ch;
                    j++;
                }else{
                        for(k = 0; k < j; k++) {
                        if(ch==array[k]){
                            break;
                        }
                    }
                    if(k==j){
                        array[j]=ch;
                        j++;
                    }
                }
            }
            for (int i = 0; i < j; i++) {
                System.out.print(array[i]);
            }
            System.out.println();
        }
        sc.close();
    }


    public static void main37(String[] args) {
        // 写一个函数返回参数二进制中 1 的个数
        //比如： 15 ----->  0000 1111 ----> 有 4 个 1
        int n=15;
        int count=0;
        while(n!=0){
            n=n&(n-1);
            count++;
        }
        System.out.println(count);
    }
    public static void main38(String[] args) {
        //获取一个数二进制序列中所有的偶数位和奇数位，分别输出二进制序列。
        //假设我们是 从右向左 数的，所以右边第一个是奇数位 ,对于32位来说，最左边的那位就是偶数位
        //比如： 15 -----> 0000 0000 0000 0000 0000 0000 0000 1111 ----> 有 4 个 1
        //例如： 7 ----> 0000 0111
        //奇数位：
        //0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
        //偶数位：
        //0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        System.out.println("奇数位：");
        for (int i = 30; i >=0 ; i-=2) {
            System.out.print(((n>>i)&1)+" ");
        }
        System.out.println();
        System.out.println("偶数位：");
        for (int i = 31; i >=1; i-=2) {
            System.out.print(((n>>i)&1)+" ");
        }
        sc.close();
    }
    public static void main36(String[] args) {
        // 写一个函数返回参数二进制中 1 的个数
        //比如： 15 ----->  0000 1111 ----> 有 4 个 1
        int n=15;
        int count=0;
        for (int i = 0; i < 32; i++) {
            int ret=n&1;
            if(ret==1){
                count++;
            }
            n=n>>>1;
        }
        System.out.println(count);
    }
    public static void main35(String[] args) {
        // 写一个函数返回参数二进制中 1 的个数
        //比如： 15 ----->  0000 1111 ----> 有 4 个 1
        int n=15;
        int count=0;
        while(n!=0){
            int ret=n&1;
            if(ret==1){
                count++;
            }
            n=n>>>1;
        }
        System.out.println(count);
    }
    public static void main34(String[] args) {
        // 求出0～999之间的所有“水仙花数”并输出。
        // (“水仙花数”是指一个三位数，其各位数字的立方和确好等于该数
        //本身，如： 153＝1^3＋5^3＋3^3 ，则153是一个“水仙花数”。)
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        for (int i = 1; i <= n; i++) {
            int m=i;
            int count=0;
            while(m!=0){
                count++;
                m/=10;
            }
            int a=i%10;
            int b=i/10;
            int sum=0;
            if(count==3){    // 水仙花数是三位数，所以只有三位
                for (int j = 0; j < count; j++) {
                    sum += Math.pow(a,count);  //求几次方的方法，a的count次方
                    a=b%10;
                    b=b/10;
                }
                if(sum==i){
                    System.out.println(i+"是水仙花数");
                }else{
                    //System.out.println(i+"不是水仙花数");
                }
            }else{
                //System.out.println(i+"不是水仙花数");
            }
        }
        sc.close();
    }
    public static void main33(String[] args) {
        // 求一个数是不是水仙花数
        // (“水仙花数”是指一个三位数，其各位数字的立方和确好等于该数
        // 本身，如： 153＝1^3＋5^3＋3^3 ，则153是一个“水仙花数”。)
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        int m=n;
        int count=0;
        while(m!=0){
            count++;
            m/=10;
        }
        int a=n%10;
        int b=n/10;
        int sum=0;
        if(count==3){    // 水仙花数是三位数，所以只有三位
            for (int j = 0; j < count; j++) {
                int ret=1;
                for (int i = 0; i < count; i++) {
                    ret*=a;
                }
                sum+=ret;
                a=b%10;
                b=b/10;
            }
            if(sum==n){
                System.out.println(n+"是水仙花数");
            }else{
                System.out.println(n+"不是水仙花数");
            }
        }else{
            System.out.println(n+"不是水仙花数");
        }
        sc.close();
    }
    public static void main32(String[] args) {
        //求两个正整数的最大公约数
        //辗转相除法
        Scanner sc=new Scanner(System.in);
        int a=sc.nextInt();
        int b=sc.nextInt();
        int c=a%b;
        while(c!=0){
            a=b;
            b=c;
            c=a%b;
        }
        System.out.println("最大公约数是"+b);
        sc.close();
    }
    public static void main31(String[] args) {
        // 输出乘法口诀表
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        for (int i = 1; i <= n; i++) {
            for (int j = 1; j <= i; j++) {
                int ret=i*j;
                System.out.print(j+"*"+i+"="+ret+" ");
            }
            System.out.println();
        }
        sc.close();
    }
    public static void main30(String[] args) {
        //打印 1 - 100 之间所有的素数
        //素数是只能被1和自己整除的数字，1不是素数
        for (int j = 2; j <= 100; j++) {
            int i=0;
            for(i=2;i<=Math.sqrt(j);i++){
                if(j%i==0){
                    break;
                }
            }
            if(i>Math.sqrt(j)){
                System.out.println(j+"是素数");
            }
        }
    }
    public static void main29(String[] args) {
        //判定一个数字是否是素数
        //素数是只能被1和自己整除的数字，1不是素数
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        if(n==1){
            System.out.println("1不是素数");
        }
        int i=0;
        //一个数总可以写成2个数的乘积的形式，a*b
        // 所以说a和b都一定是 <= 根号n  的
        for(i=2;i<=Math.sqrt(n);i++){
            if(n%i==0){
                System.out.println(n+"不是素数");
                break;
            }
        }
        if(i>Math.sqrt(n)){
            System.out.println(n+"是素数");
        }
        sc.close();
    }
    public static void main28(String[] args) {
        //判定一个数字是否是素数
        //素数是只能被1和自己整除的数字，1不是素数
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        if(n==1){
            System.out.println("1不是素数");
        }
        int i=0;
        //一个数总可以写成2个数的乘积的形式，a*b
        // 所以说a和b都一定是 <= n/2  的
        for(i=2;i<=n/2;i++){
            if(n%i==0){
                System.out.println(n+"不是素数");
                break;
            }
        }
        if(i>n/2){
            System.out.println(n+"是素数");
        }
        sc.close();
    }
    public static void main27(String[] args) {
        //判定一个数字是否是素数
        //素数是只能被1和自己整除的数字，1不是素数
        Scanner sc=new Scanner(System.in);
        int a=sc.nextInt();
        if(a==1){
            System.out.println("1不是素数");
        }
        int i=0;
        for(i=2;i<a;i++){
            if(a%i==0){
                System.out.println(a+"不是素数");
                break;
            }
        }
        if(i==a){
            System.out.println(a+"是素数");
        }
        sc.close();
    }

    public static void main26(String[] args) {
        Random random=new Random(123);
        //这样做以后每次生成的都是一样的数字了
        int randNum=random.nextInt(100)+100;  //会生成 [100 , 200 ) 之间的随机整数
        System.out.println(randNum);
    }
    public static void main25(String[] args) {
        Random random=new Random();
        int randNum=random.nextInt(100)+100;  //会生成 [100 , 200 ) 之间的随机整数
        System.out.println(randNum);

        int randNum2=random.nextInt(50)+50;  //会生成 [50 , 100 ) 之间的随机整数
        System.out.println(randNum2);
    }


    //猜数字游戏
    public static void main24(String[] args) {
        //1.让电脑生成随机数
        Scanner sc=new Scanner(System.in);
        Random random=new Random();
        int randNum=random.nextInt(100);  //会生成 [ 0 , 100 ) 之间的随机整数

        //2.用户输入数字，我们来开始比较数字大小，开始猜数字
        while(true){
            System.out.println("请输入你猜的数字：");
            int num=sc.nextInt();
            if(num>randNum){
                System.out.println("猜大了");
            }else if(num==randNum){
                System.out.println("猜对了");
                break;
            }else{
                System.out.println("猜小了");
            }
        }

    }



    public static void main23(String[] args) {
        // 循环输入  使用 asNextInt 方法 , 当输入为 ctrl+D 的时候才会停止。
        Scanner sc=new Scanner(System.in);
        while(sc.hasNextInt()){
            int n =sc.nextInt();
            System.out.println("n="+n);
        }
        sc.close();
    }
    public static void main22(String[] args) {
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入名字：");
        String str=sc.nextLine();
        //  使用 nextLine 时，   从键盘输入的时候，遇到空格也不会影响识别，会完整识别到键盘输入的内容，
        // 打印的时候键盘输入什么就会打印什么
        System.out.println(str);

        System.out.println("请输入名字：");
        String str2=sc.next();
        //  使用 next 时，      从键盘输入的时候，遇到空格以后，空格后面的内容就不识别了，
        // 打印的时候也只会打印第一个空格之前的内容
        System.out.println(str2);

    }
    public static void main21(String[] args) {
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入名字：");
        String str=sc.nextLine();
        System.out.println(str);
        System.out.println("请输入年龄：");
        int a=sc.nextInt();
        System.out.println(a);
        System.out.println("请输入工资：");
        float f=sc.nextFloat();
        System.out.println(f);
        sc.close();
    }
    public static void main20(String[] args) {
        //输入
        Scanner scanner=new Scanner(System.in);//1
        int a=scanner.nextInt();//2
        System.out.println(a);
        scanner.close();//3 ,使用完了，需要关闭
    }

    public static void main19(String[] args) {
        //输出
        System.out.println("输出且换行");
        System.out.print("输出不换行  ");
        System.out.printf("%s\n"," 格式化输出,和C语言一样！");
    }
    public static void main18(String[] args) {
        //打印 1 - 10
        int a=1;
        do{
            System.out.println(a);
            a++;
        }while(a<=10);
    }
    public static void main17(String[] args) {
        for (; ; ) {
            System.out.println("1");
        }
        //for的死循环
    }
    public static void main16(String[] args) {
        //计算 1! + 2! + 3! + 4! + 5!
        int sum=0;
        for (int i = 1; i <=5 ; i++) {
            int ret=1;
            for (int j = 1; j <=i ; j++) {
                ret*=j;
            }
            sum+=ret;
        }
        System.out.println(sum);
    }
    public static void main15(String[] args) {
        // 计算 5 的阶乘
        int ret=1;
        for (int i = 1; i <=5; i++) {
            ret*=i;
        }
        System.out.println(ret);
    }
    public static void main14(String[] args) {
        //找到1-100以内，既能被3整除，也能被5整除的数字们
        //要求要使用break和continue当中的一个
        int a=1;
        while(a<=100) {
            if(a%15!=0) {
                a++;
                continue;
            }
            System.out.println(a);
            a++;
        }
    }
    public static void main13(String[] args) {
        // 计算 1! + 2! + 3! + 4! + 5!
        int a=1;
        int num=0;
        while(a<=5){
            int i=1;
            int ret=1;
            while(i<=a){
                ret*=i;
                i++;
            }
            System.out.println(ret);
            num+=ret;
            a++;
        }
        System.out.println(num);
    }
    public static void main12(String[] args) {
        //计算 5 的阶乘
        int a=1;
        int ret=1;
        while(a<=5){
            ret*=a;
            a++;
        }
        System.out.println(ret);
    }
    public static void main11(String[] args) {
        // 计算 1 - 100 之间奇数的和
        int a=1;
        int sumOdd=0;
        while(a<=100){
            sumOdd+=a;
            a+=2;
        }
        System.out.println(sumOdd);
        System.out.println("=================");
        // 计算 1 - 100 之间偶数的和
        a=2;
        int sumEve=0;
        while(a<=100){
            sumEve+=a;
            a+=2;
        }
        System.out.println(sumEve);
    }
    public static void main10(String[] args) {
        // 计算 1 - 100 的和
        int a=1;
        int sum=0;
        while(a<=100){
            sum+=a;
            a++;
        }
        System.out.println(sum);
    }
    public static void main9(String[] args) {
        //打印 1 - 10 的数字
        int i=1;
        while(i<=10){
            System.out.println(i);
            i++;
        }
    }
    public static void main8(String[] args) {
        int a=2;
        switch(a){
            case 1:
                System.out.println("1");
                break;
            case 2:
                System.out.println("2");
                break;
            default:
                System.out.println("输入有误");
                break;
        }
    }
    public static void main7(String[] args) {
        //判断一个年份是否为闰年
        int year=2022;
        if((year%100==0 && year%400==0)||(year%100!=0 && year%4==0)){
            System.out.println(year+"是闰年");
        }else{
            System.out.println(year+"不是闰年");
        }
    }
    public static void main6(String[] args) {
        //判断一个年份是否为闰年
        int year=2022;
        if(year%100==0) {
            if(year%400==0){
                System.out.println(year+"是闰年");
            }else{
                System.out.println(year+"不是闰年");
            }
        }else{
            if(year%4==0) {
                System.out.println(year+"是闰年");
            }else {
                System.out.println(year+"不是闰年");
            }
        }
    }
    public static void main5(String[] args) {
        // 判断一个数字是正数，负数，还是零
        int a=10;
        if(a>0){
            System.out.println("正数");
        }else if(a<0){
            System.out.println("负数");
        }else{
            System.out.println("0");
        }
    }

    public static void main4(String[] args) {
        // 判断一个数字是奇数还是偶数
        int a=11;
        if(a%2==0) {
            System.out.println("偶数！");
        }else {
            System.out.println("奇数！");
        }
    }

    public static void main3(String[] args) {
        int a=10;
        if(a>10){
            System.out.println("a>10");
        }else if(a<10){
            System.out.println("a<10");
        }else{
            System.out.println("a=10");
        }
    }

    public static void main2(String[] args) {
        int a=10;
        if(a==10){
            System.out.println("a==10");
        }else{
            System.out.println("a!=10");
        }
    }

    public static void main1(String[] args) {
        int a=10;
        if(a==10){
            //if的括号里面是：布尔表达式
            System.out.println("a==10");
        }
    }

}
